'''
定义一个Shape类，包含计算表面积barea和体积vol的抽象方法。然后定义扩展子类，
（1）圆柱体(Cylinder)，包含私有属性半径radius和height，有一个参数的构造方法、barea方法（表面积）,
vol方法（体积），print方法（输出圆柱体的半径和高）
（2）长方体(Cube)，私有属性length、width、height，有三个参数的构造方法，barea方法（计算表面积）,
vol方法（计算体积）、输出三个私有参数的方法print。
'''
import math
from abc import ABCMeta,abstractmethod,abstractproperty

class Shape:
    ###########   Begin  ################
    @abstractmethod
    def barea(self):
        pass
    ###########   Begin  ################

class Cylinder(Shape):
    def __init__(self,r,h):
        self.r=r
        self.h=h
    ###########   Begin  ################
    def vol(self):
        return math.pi*self.r**2*self.h*1/3
    def barea(self):
        return self.r**2*math.pi+self.r*math.pi*self.h
    def print(self):
        print("circle={0},height={1}".format(self.r,self.h))

    ###########   Begin  ################


class Cube(Shape):
    ###########   Begin  ################
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
    def barea(self):
        return 2*self.a*self.b+2*self.a*self.c+2*self.b*self.c
    def vol(self):
        return self.a*self.b*self.c
    def print(self):
        print("length={0},width={1},height={2}".format(self.a,self.b,self.c))
    
    ###########   Begin  ################

if __name__=='__main__':
    ls=eval(input())  #以列表方式输入圆柱体和长方体所需的数据
    c=Cylinder(ls[0][0],ls[0][1])
    print("这个圆柱体的表面积和体积是：{0:.3f}，{1:.3f}".format(c.barea(),c.vol()),end=' ')
    c.print()
    b = Cube(ls[1][0], ls[1][1],ls[1][2])
    print("这个长方体的表面积和体积是：{0:.3f}，{1:.3f}".format(b.barea(), b.vol()),end=' ')
    b.print()

